import axios from 'axios'
import { ElMessage } from 'element-plus'


const http = axios.create({
  baseURL: '/mock'
})


//==========================> response 响应拦截器
http.interceptors.response.use(res => {
  const { data, success, msg } = res.data
  // 二进制数据则直接返回
  if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
    return res.data
  }
  // 业务逻辑的判断
  if (success) {
    // 业务正确
    return data
  } else {
    // 业务错误
    ElMessage({
      message: msg,
      type: 'error',
      duration: 2 * 1000
    })
    return Promise.reject(msg)
  }
},
  error => {
    // 请求错误
    console.log('err' + error)
    let { message } = error;
    if (message == "Network Error") {
      message = "后端接口连接异常";
    }
    else if (message.includes("timeout")) {
      message = "系统接口请求超时";
    }
    else if (message.includes("Request failed with status code")) {
      message = "系统接口" + message.substr(message.length - 3) + "异常";
    }
    ElMessage({
      message: message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

export default http